[INFO] fetching crate microsalt 0.2.21...
[INFO] checking microsalt-0.2.21 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate microsalt 0.2.21 into /workspace/builds/worker-5-tc1/source
[INFO] validating manifest of crates.io crate microsalt 0.2.21 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate microsalt 0.2.21
[INFO] finished tweaking crates.io crate microsalt 0.2.21
[INFO] tweaked toml for crates.io crate microsalt 0.2.21 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded unwrap v1.1.0
[INFO] [stderr]   Downloaded index-fixed v0.0.2
[INFO] [stderr]   Downloaded mach_o_sys v0.1.1
[INFO] [stderr]   Downloaded memsec v0.3.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7e08736f84b4b45ffad223fa3cb94799a6e14bb9d96ccce52d81df1bbd593707
[INFO] running `Command { std: "docker" "start" "-a" "7e08736f84b4b45ffad223fa3cb94799a6e14bb9d96ccce52d81df1bbd593707", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e08736f84b4b45ffad223fa3cb94799a6e14bb9d96ccce52d81df1bbd593707", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e08736f84b4b45ffad223fa3cb94799a6e14bb9d96ccce52d81df1bbd593707", kill_on_drop: false }`
[INFO] [stdout] 7e08736f84b4b45ffad223fa3cb94799a6e14bb9d96ccce52d81df1bbd593707
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9180fd5b0e74771daed31811e57485b09db12319d6161d4233c6472f307959c0
[INFO] running `Command { std: "docker" "start" "-a" "9180fd5b0e74771daed31811e57485b09db12319d6161d4233c6472f307959c0", kill_on_drop: false }`
[INFO] [stderr]    Compiling memsec v0.3.4
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking index-fixed v0.0.2
[INFO] [stderr]     Checking rustc-serialize v0.3.25
[INFO] [stderr]     Checking serde v0.9.15
[INFO] [stderr]     Checking unwrap v1.1.0
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking microsalt v0.2.21 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/lib.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/hash/mod.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | /// A hash
[INFO] [stdout]    | ^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Hash`, `Hasher`
[INFO] [stdout]  --> src/hash/mod.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::hash::{Hash, Hasher};
[INFO] [stdout]   |                 ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/hash/mod.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | / new_type! {
[INFO] [stdout] 17 | |     /// Digest-structure
[INFO] [stdout] 18 | |     public HashType(LENGTH);
[INFO] [stdout] 19 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cmp`
[INFO] [stdout]    --> src/shared.rs:202:11
[INFO] [stdout]     |
[INFO] [stdout] 202 | use std::{cmp, mem};
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/sign/mod.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | / ///A Pubic key for crypto box
[INFO] [stdout] 30 | | //pub type PublicKey = [u8; PUBLIC_KEY_BYTES];
[INFO] [stdout] 31 | | ///A secret key for crypto box
[INFO] [stdout]    | |_-----------------------------^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shared`
[INFO] [stdout]  --> src/sign/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use shared;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / new_type! {
[INFO] [stdout] 35 | |     /// `SecretKey` for signatures
[INFO] [stdout] 36 | |     ///
[INFO] [stdout] 37 | |     /// When a `SecretKey` goes out of scope its contents
[INFO] [stdout] 38 | |     /// will be zeroed out
[INFO] [stdout] 39 | |     secret SecretKey(SECRET_KEY_BYTES);
[INFO] [stdout] 40 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | / new_type! {
[INFO] [stdout] 43 | |     /// `PublicKey` for signatures
[INFO] [stdout] 44 | |     public PublicKey(PUBLIC_KEY_BYTES);
[INFO] [stdout] 45 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | / new_type! {
[INFO] [stdout] 48 | |     /// Detached signature
[INFO] [stdout] 49 | |     public Signature(SIGNATURE_LENGTH);
[INFO] [stdout] 50 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shared`
[INFO] [stdout]   --> src/secretbox/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use shared;
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shared`
[INFO] [stdout]  --> src/boxy/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use shared;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/hash/mod.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | /// A hash
[INFO] [stdout]    | ^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Hash`, `Hasher`
[INFO] [stdout]  --> src/hash/mod.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::hash::{Hash, Hasher};
[INFO] [stdout]   |                 ^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/hash/mod.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | / new_type! {
[INFO] [stdout] 17 | |     /// Digest-structure
[INFO] [stdout] 18 | |     public HashType(LENGTH);
[INFO] [stdout] 19 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cmp`
[INFO] [stdout]    --> src/shared.rs:202:11
[INFO] [stdout]     |
[INFO] [stdout] 202 | use std::{cmp, mem};
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/sign/mod.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | / ///A Pubic key for crypto box
[INFO] [stdout] 30 | | //pub type PublicKey = [u8; PUBLIC_KEY_BYTES];
[INFO] [stdout] 31 | | ///A secret key for crypto box
[INFO] [stdout]    | |_-----------------------------^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / new_type! {
[INFO] [stdout] 35 | |     /// `SecretKey` for signatures
[INFO] [stdout] 36 | |     ///
[INFO] [stdout] 37 | |     /// When a `SecretKey` goes out of scope its contents
[INFO] [stdout] 38 | |     /// will be zeroed out
[INFO] [stdout] 39 | |     secret SecretKey(SECRET_KEY_BYTES);
[INFO] [stdout] 40 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | / new_type! {
[INFO] [stdout] 43 | |     /// `PublicKey` for signatures
[INFO] [stdout] 44 | |     public PublicKey(PUBLIC_KEY_BYTES);
[INFO] [stdout] 45 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | / new_type! {
[INFO] [stdout] 48 | |     /// Detached signature
[INFO] [stdout] 49 | |     public Signature(SIGNATURE_LENGTH);
[INFO] [stdout] 50 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shared`
[INFO] [stdout]  --> src/boxy/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use shared;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hash/sha512.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let mut x = &mut x[..new_len];
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hash/sha512.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let mut x = &mut x[..new_len];
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sign/ed25519.rs:396:16
[INFO] [stdout]     |
[INFO] [stdout] 396 |     let (init, mut rest) = r.split_at_mut(3);
[INFO] [stdout]     |                ----^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sign/ed25519.rs:396:16
[INFO] [stdout]     |
[INFO] [stdout] 396 |     let (init, mut rest) = r.split_at_mut(3);
[INFO] [stdout]     |                ----^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_data_test_helper` is never used
[INFO] [stdout]    --> src/shared.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn random_data_test_helper(len: usize) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIGN_BYTES` is never used
[INFO] [stdout]   --> src/sign/ed25519.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const SIGN_BYTES: usize = 64;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/secretbox/mod.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     xsalsa20poly1305::secretbox(&mut cipher, &m, &nonce, &key.0);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let _ = xsalsa20poly1305::secretbox(&mut cipher, &m, &nonce, &key.0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/boxy/mod.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |         curve25519xsalsa20poly1305::box_(&mut cipher, &m, &nonce, &pk.0, &sk.0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let _ = curve25519xsalsa20poly1305::box_(&mut cipher, &m, &nonce, &pk.0, &sk.0);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sign/mod.rs:261:13
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let mut sig = key.sign(&message);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 18 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIGN_BYTES` is never used
[INFO] [stdout]   --> src/sign/ed25519.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const SIGN_BYTES: usize = 64;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/secretbox/mod.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     xsalsa20poly1305::secretbox(&mut cipher, &m, &nonce, &key.0);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let _ = xsalsa20poly1305::secretbox(&mut cipher, &m, &nonce, &key.0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/boxy/mod.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |         curve25519xsalsa20poly1305::box_(&mut cipher, &m, &nonce, &pk.0, &sk.0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let _ = curve25519xsalsa20poly1305::box_(&mut cipher, &m, &nonce, &pk.0, &sk.0);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.25s
[INFO] running `Command { std: "docker" "inspect" "9180fd5b0e74771daed31811e57485b09db12319d6161d4233c6472f307959c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9180fd5b0e74771daed31811e57485b09db12319d6161d4233c6472f307959c0", kill_on_drop: false }`
[INFO] [stdout] 9180fd5b0e74771daed31811e57485b09db12319d6161d4233c6472f307959c0
[INFO] checking microsalt-0.2.21 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate microsalt 0.2.21 into /workspace/builds/worker-5-tc2/source
[INFO] validating manifest of crates.io crate microsalt 0.2.21 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate microsalt 0.2.21
[INFO] finished tweaking crates.io crate microsalt 0.2.21
[INFO] tweaked toml for crates.io crate microsalt 0.2.21 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 27c8e5d63ac62487f890b99f3f523c475a3a4ecaa73b6c3f0284010e34ac4c24
[INFO] running `Command { std: "docker" "start" "-a" "27c8e5d63ac62487f890b99f3f523c475a3a4ecaa73b6c3f0284010e34ac4c24", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "27c8e5d63ac62487f890b99f3f523c475a3a4ecaa73b6c3f0284010e34ac4c24", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "27c8e5d63ac62487f890b99f3f523c475a3a4ecaa73b6c3f0284010e34ac4c24", kill_on_drop: false }`
[INFO] [stdout] 27c8e5d63ac62487f890b99f3f523c475a3a4ecaa73b6c3f0284010e34ac4c24
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9aff6f3b3e8ec563fd704e43c226c671711361eb091669379040387c2e08c6f7
[INFO] running `Command { std: "docker" "start" "-a" "9aff6f3b3e8ec563fd704e43c226c671711361eb091669379040387c2e08c6f7", kill_on_drop: false }`
[INFO] [stderr]    Compiling memsec v0.3.4
[INFO] [stderr]     Checking rustc-serialize v0.3.25
[INFO] [stderr]     Checking serde v0.9.15
[INFO] [stderr]     Checking unwrap v1.1.0
[INFO] [stderr]     Checking index-fixed v0.0.2
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking microsalt v0.2.21 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/lib.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/hash/mod.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | /// A hash
[INFO] [stdout]    | ^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:62:14
[INFO] [stdout]    |
[INFO] [stdout] 62 |     for i in 0..8 {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:63:38
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let v = dl64(index_fixed!(&x[8 * i..];..8));
[INFO] [stdout]    |                                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:69:18
[INFO] [stdout]    |
[INFO] [stdout] 69 |         for i in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:70:41
[INFO] [stdout]    |
[INFO] [stdout] 70 |             w[i] = dl64(index_fixed!(&m[8 * i..];..8));
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:73:18
[INFO] [stdout]    |
[INFO] [stdout] 73 |         for i in 0..80 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:74:22
[INFO] [stdout]    |
[INFO] [stdout] 74 |             for j in 0..8 {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:80:22
[INFO] [stdout]    |
[INFO] [stdout] 80 |             for j in 0..8 {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:84:26
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 for j in 0..16 {
[INFO] [stdout]    |                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:90:18
[INFO] [stdout]    |
[INFO] [stdout] 90 |         for i in 0..8 {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:95:16
[INFO] [stdout]    |
[INFO] [stdout] 95 |         m = &m[128..];
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:98:14
[INFO] [stdout]    |
[INFO] [stdout] 98 |     for i in 0..8 {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:99:34
[INFO] [stdout]    |
[INFO] [stdout] 99 |         ts64(index_fixed!(&mut x[8*i..];..8),z[i].0);
[INFO] [stdout]    |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/hash/sha512.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |     m = &m[s..][..new_len];
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hash/sha512.rs:131:14
[INFO] [stdout]     |
[INFO] [stdout] 131 |     for i in 0..m.len() {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/hash/sha512.rs:142:30
[INFO] [stdout]     |
[INFO] [stdout] 142 |     ts64(index_fixed!(&mut x[l..];..8), (b<<3) as u64);
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hash/sha512.rs:145:14
[INFO] [stdout]     |
[INFO] [stdout] 145 |     for i in 0..64 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Hash`, `Hasher`
[INFO] [stdout]  --> src/hash/mod.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::hash::{Hash, Hasher};
[INFO] [stdout]   |                 ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/hash/mod.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | / new_type! {
[INFO] [stdout] 17 | |     /// Digest-structure
[INFO] [stdout] 18 | |     public HashType(LENGTH);
[INFO] [stdout] 19 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:16:14
[INFO] [stdout]    |
[INFO] [stdout] 16 |     for j in 0..17 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:28:14
[INFO] [stdout]    |
[INFO] [stdout] 28 |     for j in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:44:18
[INFO] [stdout]    |
[INFO] [stdout] 44 |         for j in 0..j_end {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:48:16
[INFO] [stdout]    |
[INFO] [stdout] 48 |         m = &m[j_end..];
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 |         for i in 0..17 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:52:22
[INFO] [stdout]    |
[INFO] [stdout] 52 |             for j in 0..17 {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:57:18
[INFO] [stdout]    |
[INFO] [stdout] 57 |         for i in 0..17 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:61:18
[INFO] [stdout]    |
[INFO] [stdout] 61 |         for j in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:69:18
[INFO] [stdout]    |
[INFO] [stdout] 69 |         for j in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:82:14
[INFO] [stdout]    |
[INFO] [stdout] 82 |     for j in 0..17 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:88:14
[INFO] [stdout]    |
[INFO] [stdout] 88 |     for j in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:93:14
[INFO] [stdout]    |
[INFO] [stdout] 93 |     for j in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 |     for i in 0..x.len() {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:29:14
[INFO] [stdout]    |
[INFO] [stdout] 29 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:39:14
[INFO] [stdout]    |
[INFO] [stdout] 39 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:55:14
[INFO] [stdout]    |
[INFO] [stdout] 55 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:62:14
[INFO] [stdout]    |
[INFO] [stdout] 62 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:75:18
[INFO] [stdout]    |
[INFO] [stdout] 75 |         for j in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:80:14
[INFO] [stdout]    |
[INFO] [stdout] 80 |     for i in 0..15 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:84:14
[INFO] [stdout]    |
[INFO] [stdout] 84 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:100:14
[INFO] [stdout]     |
[INFO] [stdout] 100 |     for a in 0..16 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:103:15
[INFO] [stdout]     |
[INFO] [stdout] 103 |     for a in (0..254).rev() {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:113:14
[INFO] [stdout]     |
[INFO] [stdout] 113 |     for a in 0..16 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:124:14
[INFO] [stdout]     |
[INFO] [stdout] 124 |     for i in 0..16 { t[i] = n[i]; }
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:130:14
[INFO] [stdout]     |
[INFO] [stdout] 130 |     for _ in 0..2 {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:132:18
[INFO] [stdout]     |
[INFO] [stdout] 132 |         for i in 1..15 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:143:14
[INFO] [stdout]     |
[INFO] [stdout] 143 |     for i in 0..16 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cmp`
[INFO] [stdout]    --> src/shared.rs:202:11
[INFO] [stdout]     |
[INFO] [stdout] 202 | use std::{cmp, mem};
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 35 |     for i in 0..4 {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:36:39
[INFO] [stdout]    |
[INFO] [stdout] 36 |         x[5*i] = ld32(index_fixed!(&c[4*i..];..4));
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:37:39
[INFO] [stdout]    |
[INFO] [stdout] 37 |         x[1+i] = ld32(index_fixed!(&k[4*i..];..4));
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:38:41
[INFO] [stdout]    |
[INFO] [stdout] 38 |         x[6+i] = ld32(index_fixed!(&inx[4*i..];..4));
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:39:40
[INFO] [stdout]    |
[INFO] [stdout] 39 |         x[11+i] = ld32(index_fixed!(&k[16+4*i..];..4));
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:42:14
[INFO] [stdout]    |
[INFO] [stdout] 42 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:46:14
[INFO] [stdout]    |
[INFO] [stdout] 46 |     for _ in 0..20 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:47:18
[INFO] [stdout]    |
[INFO] [stdout] 47 |         for j in 0..4 {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:48:22
[INFO] [stdout]    |
[INFO] [stdout] 48 |             for m in 0..4 {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:55:22
[INFO] [stdout]    |
[INFO] [stdout] 55 |             for m in 0..4 {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:59:18
[INFO] [stdout]    |
[INFO] [stdout] 59 |         for m in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |         for i in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:68:18
[INFO] [stdout]    |
[INFO] [stdout] 68 |         for i in 0..4 {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:69:52
[INFO] [stdout]    |
[INFO] [stdout] 69 |             x[5*i] = x[5*i] - ld32(index_fixed!(&c[4*i..];..4));
[INFO] [stdout]    |                                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:70:54
[INFO] [stdout]    |
[INFO] [stdout] 70 |             x[6+i] = x[6+i] - ld32(index_fixed!(&inx[4*i..];..4));
[INFO] [stdout]    |                                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:72:18
[INFO] [stdout]    |
[INFO] [stdout] 72 |         for i in 0..4 {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:73:40
[INFO] [stdout]    |
[INFO] [stdout] 73 |             st32(index_fixed!(&mut out[4*i..];..4), x[5*i]);
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:74:40
[INFO] [stdout]    |
[INFO] [stdout] 74 |             st32(index_fixed!(&mut out[16+4*i..];..4), x[6+i]);
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:77:18
[INFO] [stdout]    |
[INFO] [stdout] 77 |         for i in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:78:40
[INFO] [stdout]    |
[INFO] [stdout] 78 |             st32(index_fixed!(&mut out[4 * i..];..4), x[i] + y[i]);
[INFO] [stdout]    |                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:105:14
[INFO] [stdout]     |
[INFO] [stdout] 105 |     for i in 0..8 {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:111:18
[INFO] [stdout]     |
[INFO] [stdout] 111 |         for i in 0..64 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:120:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |         for i in 8..16 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:126:22
[INFO] [stdout]     |
[INFO] [stdout] 126 |         c = &mut {c}[64..];
[INFO] [stdout]     |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:129:32
[INFO] [stdout]     |
[INFO] [stdout] 129 |           m = Some(&m.unwrap()[64..])
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:136:18
[INFO] [stdout]     |
[INFO] [stdout] 136 |         for i in 0..c.len() {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:158:38
[INFO] [stdout]     |
[INFO] [stdout] 158 |     stream_salsa20(c,index_fixed!(&n[16..];..8),&s)
[INFO] [stdout]     |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:164:50
[INFO] [stdout]     |
[INFO] [stdout] 164 |     stream_salsa20_xor(c,Some(m),index_fixed!(&n[16..];..8), &s)
[INFO] [stdout]     |                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/sign/mod.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | / ///A Pubic key for crypto box
[INFO] [stdout] 30 | | //pub type PublicKey = [u8; PUBLIC_KEY_BYTES];
[INFO] [stdout] 31 | | ///A secret key for crypto box
[INFO] [stdout]    | |_-----------------------------^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/sign/ed25519.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/sign/ed25519.rs:60:14
[INFO] [stdout]    |
[INFO] [stdout] 60 |     for i in 0..4 {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:134:15
[INFO] [stdout]     |
[INFO] [stdout] 134 |     for i in (0..256).rev() {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:171:14
[INFO] [stdout]     |
[INFO] [stdout] 171 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:191:15
[INFO] [stdout]     |
[INFO] [stdout] 191 |     for i in (32..64).rev() {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:193:18
[INFO] [stdout]     |
[INFO] [stdout] 193 |         for j in (i - 32)..(i - 12) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:205:14
[INFO] [stdout]     |
[INFO] [stdout] 205 |     for j in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:212:14
[INFO] [stdout]     |
[INFO] [stdout] 212 |     for j in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:216:14
[INFO] [stdout]     |
[INFO] [stdout] 216 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:226:14
[INFO] [stdout]     |
[INFO] [stdout] 226 |     for i in 0..64 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:230:14
[INFO] [stdout]     |
[INFO] [stdout] 230 |     for i in 0..64 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:265:14
[INFO] [stdout]     |
[INFO] [stdout] 265 |     for i in 0..m.len() {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:269:14
[INFO] [stdout]     |
[INFO] [stdout] 269 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:273:34
[INFO] [stdout]     |
[INFO] [stdout] 273 |     hash::raw_sha512(&mut r, &sm[32..][..m.len()+32]);
[INFO] [stdout]     |                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:278:14
[INFO] [stdout]     |
[INFO] [stdout] 278 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:286:14
[INFO] [stdout]     |
[INFO] [stdout] 286 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:291:14
[INFO] [stdout]     |
[INFO] [stdout] 291 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:292:18
[INFO] [stdout]     |
[INFO] [stdout] 292 |         for j in 0..32 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:298:32
[INFO] [stdout]     |
[INFO] [stdout] 298 |     mod_l(index_fixed!(&mut sm[32..];..32), &mut x);
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:305:14
[INFO] [stdout]     |
[INFO] [stdout] 305 |     for a in 0..16 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:308:15
[INFO] [stdout]     |
[INFO] [stdout] 308 |     for a in (0..251).rev() {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:318:14
[INFO] [stdout]     |
[INFO] [stdout] 318 |     for a in 0..16 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:433:14
[INFO] [stdout]     |
[INFO] [stdout] 433 |     for i in 0..sm.len() {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:436:14
[INFO] [stdout]     |
[INFO] [stdout] 436 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:443:41
[INFO] [stdout]     |
[INFO] [stdout] 443 |     scalarbase(&mut q, index_fixed!(&sm[32..];..32));
[INFO] [stdout]     |                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:451:18
[INFO] [stdout]     |
[INFO] [stdout] 451 |         for i in 0..n {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:457:14
[INFO] [stdout]     |
[INFO] [stdout] 457 |     for i in 0..n {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shared`
[INFO] [stdout]  --> src/sign/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use shared;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / new_type! {
[INFO] [stdout] 35 | |     /// `SecretKey` for signatures
[INFO] [stdout] 36 | |     ///
[INFO] [stdout] 37 | |     /// When a `SecretKey` goes out of scope its contents
[INFO] [stdout] 38 | |     /// will be zeroed out
[INFO] [stdout] 39 | |     secret SecretKey(SECRET_KEY_BYTES);
[INFO] [stdout] 40 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | / new_type! {
[INFO] [stdout] 43 | |     /// `PublicKey` for signatures
[INFO] [stdout] 44 | |     public PublicKey(PUBLIC_KEY_BYTES);
[INFO] [stdout] 45 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/hash/mod.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | /// A hash
[INFO] [stdout]    | ^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:62:14
[INFO] [stdout]    |
[INFO] [stdout] 62 |     for i in 0..8 {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:63:38
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let v = dl64(index_fixed!(&x[8 * i..];..8));
[INFO] [stdout]    |                                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:69:18
[INFO] [stdout]    |
[INFO] [stdout] 69 |         for i in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:70:41
[INFO] [stdout]    |
[INFO] [stdout] 70 |             w[i] = dl64(index_fixed!(&m[8 * i..];..8));
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:73:18
[INFO] [stdout]    |
[INFO] [stdout] 73 |         for i in 0..80 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:74:22
[INFO] [stdout]    |
[INFO] [stdout] 74 |             for j in 0..8 {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:80:22
[INFO] [stdout]    |
[INFO] [stdout] 80 |             for j in 0..8 {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:84:26
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 for j in 0..16 {
[INFO] [stdout]    |                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:90:18
[INFO] [stdout]    |
[INFO] [stdout] 90 |         for i in 0..8 {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:95:16
[INFO] [stdout]    |
[INFO] [stdout] 95 |         m = &m[128..];
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:98:14
[INFO] [stdout]    |
[INFO] [stdout] 98 |     for i in 0..8 {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/hash/sha512.rs:99:34
[INFO] [stdout]    |
[INFO] [stdout] 99 |         ts64(index_fixed!(&mut x[8*i..];..8),z[i].0);
[INFO] [stdout]    |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/hash/sha512.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |     m = &m[s..][..new_len];
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hash/sha512.rs:131:14
[INFO] [stdout]     |
[INFO] [stdout] 131 |     for i in 0..m.len() {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/hash/sha512.rs:142:30
[INFO] [stdout]     |
[INFO] [stdout] 142 |     ts64(index_fixed!(&mut x[l..];..8), (b<<3) as u64);
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hash/sha512.rs:145:14
[INFO] [stdout]     |
[INFO] [stdout] 145 |     for i in 0..64 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Hash`, `Hasher`
[INFO] [stdout]  --> src/hash/mod.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::hash::{Hash, Hasher};
[INFO] [stdout]   |                 ^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/hash/mod.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | / new_type! {
[INFO] [stdout] 17 | |     /// Digest-structure
[INFO] [stdout] 18 | |     public HashType(LENGTH);
[INFO] [stdout] 19 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:16:14
[INFO] [stdout]    |
[INFO] [stdout] 16 |     for j in 0..17 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:28:14
[INFO] [stdout]    |
[INFO] [stdout] 28 |     for j in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:44:18
[INFO] [stdout]    |
[INFO] [stdout] 44 |         for j in 0..j_end {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:48:16
[INFO] [stdout]    |
[INFO] [stdout] 48 |         m = &m[j_end..];
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 |         for i in 0..17 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:52:22
[INFO] [stdout]    |
[INFO] [stdout] 52 |             for j in 0..17 {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:57:18
[INFO] [stdout]    |
[INFO] [stdout] 57 |         for i in 0..17 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:61:18
[INFO] [stdout]    |
[INFO] [stdout] 61 |         for j in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:69:18
[INFO] [stdout]    |
[INFO] [stdout] 69 |         for j in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:82:14
[INFO] [stdout]    |
[INFO] [stdout] 82 |     for j in 0..17 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:88:14
[INFO] [stdout]    |
[INFO] [stdout] 88 |     for j in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/onetimeauth/poly1305.rs:93:14
[INFO] [stdout]    |
[INFO] [stdout] 93 |     for j in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 |     for i in 0..x.len() {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:29:14
[INFO] [stdout]    |
[INFO] [stdout] 29 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:39:14
[INFO] [stdout]    |
[INFO] [stdout] 39 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:55:14
[INFO] [stdout]    |
[INFO] [stdout] 55 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:62:14
[INFO] [stdout]    |
[INFO] [stdout] 62 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:75:18
[INFO] [stdout]    |
[INFO] [stdout] 75 |         for j in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:80:14
[INFO] [stdout]    |
[INFO] [stdout] 80 |     for i in 0..15 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/shared.rs:84:14
[INFO] [stdout]    |
[INFO] [stdout] 84 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:100:14
[INFO] [stdout]     |
[INFO] [stdout] 100 |     for a in 0..16 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:103:15
[INFO] [stdout]     |
[INFO] [stdout] 103 |     for a in (0..254).rev() {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:113:14
[INFO] [stdout]     |
[INFO] [stdout] 113 |     for a in 0..16 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:124:14
[INFO] [stdout]     |
[INFO] [stdout] 124 |     for i in 0..16 { t[i] = n[i]; }
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:130:14
[INFO] [stdout]     |
[INFO] [stdout] 130 |     for _ in 0..2 {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:132:18
[INFO] [stdout]     |
[INFO] [stdout] 132 |         for i in 1..15 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:143:14
[INFO] [stdout]     |
[INFO] [stdout] 143 |     for i in 0..16 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:161:14
[INFO] [stdout]     |
[INFO] [stdout] 161 |     for _ in 0usize..256 {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:181:14
[INFO] [stdout]     |
[INFO] [stdout] 181 |     for _ in 0usize..256 {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cmp`
[INFO] [stdout]    --> src/shared.rs:202:11
[INFO] [stdout]     |
[INFO] [stdout] 202 | use std::{cmp, mem};
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:232:14
[INFO] [stdout]     |
[INFO] [stdout] 232 |     for i in 0usize..256 {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/shared.rs:263:32
[INFO] [stdout]     |
[INFO] [stdout] 263 |     unsafe { memsec::memzero(x[1..11].as_mut_ptr(), 10 * mem::size_of_val(&x[0])) };
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 35 |     for i in 0..4 {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:36:39
[INFO] [stdout]    |
[INFO] [stdout] 36 |         x[5*i] = ld32(index_fixed!(&c[4*i..];..4));
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:37:39
[INFO] [stdout]    |
[INFO] [stdout] 37 |         x[1+i] = ld32(index_fixed!(&k[4*i..];..4));
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:38:41
[INFO] [stdout]    |
[INFO] [stdout] 38 |         x[6+i] = ld32(index_fixed!(&inx[4*i..];..4));
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:39:40
[INFO] [stdout]    |
[INFO] [stdout] 39 |         x[11+i] = ld32(index_fixed!(&k[16+4*i..];..4));
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:42:14
[INFO] [stdout]    |
[INFO] [stdout] 42 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:46:14
[INFO] [stdout]    |
[INFO] [stdout] 46 |     for _ in 0..20 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:47:18
[INFO] [stdout]    |
[INFO] [stdout] 47 |         for j in 0..4 {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:48:22
[INFO] [stdout]    |
[INFO] [stdout] 48 |             for m in 0..4 {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:55:22
[INFO] [stdout]    |
[INFO] [stdout] 55 |             for m in 0..4 {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:59:18
[INFO] [stdout]    |
[INFO] [stdout] 59 |         for m in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |         for i in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:68:18
[INFO] [stdout]    |
[INFO] [stdout] 68 |         for i in 0..4 {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:69:52
[INFO] [stdout]    |
[INFO] [stdout] 69 |             x[5*i] = x[5*i] - ld32(index_fixed!(&c[4*i..];..4));
[INFO] [stdout]    |                                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:70:54
[INFO] [stdout]    |
[INFO] [stdout] 70 |             x[6+i] = x[6+i] - ld32(index_fixed!(&inx[4*i..];..4));
[INFO] [stdout]    |                                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:72:18
[INFO] [stdout]    |
[INFO] [stdout] 72 |         for i in 0..4 {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:73:40
[INFO] [stdout]    |
[INFO] [stdout] 73 |             st32(index_fixed!(&mut out[4*i..];..4), x[5*i]);
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:74:40
[INFO] [stdout]    |
[INFO] [stdout] 74 |             st32(index_fixed!(&mut out[16+4*i..];..4), x[6+i]);
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:77:18
[INFO] [stdout]    |
[INFO] [stdout] 77 |         for i in 0..16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/xsalsa20.rs:78:40
[INFO] [stdout]    |
[INFO] [stdout] 78 |             st32(index_fixed!(&mut out[4 * i..];..4), x[i] + y[i]);
[INFO] [stdout]    |                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:105:14
[INFO] [stdout]     |
[INFO] [stdout] 105 |     for i in 0..8 {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:111:18
[INFO] [stdout]     |
[INFO] [stdout] 111 |         for i in 0..64 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:120:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |         for i in 8..16 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | / new_type! {
[INFO] [stdout] 48 | |     /// Detached signature
[INFO] [stdout] 49 | |     public Signature(SIGNATURE_LENGTH);
[INFO] [stdout] 50 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/secretbox/xsalsa20poly1305.rs:19:25
[INFO] [stdout]    |
[INFO] [stdout] 19 |     assert_eq!(&message[0..32], &[0u8;32]);
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:126:22
[INFO] [stdout]     |
[INFO] [stdout] 126 |         c = &mut {c}[64..];
[INFO] [stdout]     |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:129:32
[INFO] [stdout]     |
[INFO] [stdout] 129 |           m = Some(&m.unwrap()[64..])
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:136:18
[INFO] [stdout]     |
[INFO] [stdout] 136 |         for i in 0..c.len() {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:158:38
[INFO] [stdout]     |
[INFO] [stdout] 158 |     stream_salsa20(c,index_fixed!(&n[16..];..8),&s)
[INFO] [stdout]     |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/secretbox/xsalsa20poly1305.rs:31:28
[INFO] [stdout]    |
[INFO] [stdout] 31 |     *index_fixed!(&mut out[16..32];..16) = o;
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/secretbox/xsalsa20poly1305.rs:48:67
[INFO] [stdout]    |
[INFO] [stdout] 48 |     if !onetimeauth::poly1305::onetimeauth_verify(index_fixed!(&c[16..];..16), &c[32..], &x) { //
[INFO] [stdout]    |                                                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/secretbox/xsalsa20poly1305.rs:48:83
[INFO] [stdout]    |
[INFO] [stdout] 48 |     if !onetimeauth::poly1305::onetimeauth_verify(index_fixed!(&c[16..];..16), &c[32..], &x) { //
[INFO] [stdout]    |                                                                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/secretbox/xsalsa20poly1305.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 |     for i in 0..32 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shared`
[INFO] [stdout]   --> src/secretbox/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use shared;
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |     for i in (0..255).rev() {
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 85 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:93:49
[INFO] [stdout]    |
[INFO] [stdout] 93 |     shared::inv25519(&mut tmp, *index_fixed!(&x[32..];..16));
[INFO] [stdout]    |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:94:26
[INFO] [stdout]    |
[INFO] [stdout] 94 |     *index_fixed!(&mut x[32..];..16) = tmp;
[INFO] [stdout]    |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:97:52
[INFO] [stdout]    |
[INFO] [stdout] 97 |     shared::gf_multiply(&mut tmp, *index_fixed!(&x[16..];..16), *index_fixed!(&x[32..];..16));
[INFO] [stdout]    |                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:97:82
[INFO] [stdout]    |
[INFO] [stdout] 97 |     shared::gf_multiply(&mut tmp, *index_fixed!(&x[16..];..16), *index_fixed!(&x[32..];..16));
[INFO] [stdout]    |                                                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:98:26
[INFO] [stdout]    |
[INFO] [stdout] 98 |     *index_fixed!(&mut x[16..];..16) = tmp;
[INFO] [stdout]    |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:99:43
[INFO] [stdout]    |
[INFO] [stdout] 99 |     shared::pack25519(q, *index_fixed!(&x[16..];..16));
[INFO] [stdout]    |                                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shared`
[INFO] [stdout]  --> src/boxy/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use shared;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/stream/xsalsa20.rs:164:50
[INFO] [stdout]     |
[INFO] [stdout] 164 |     stream_salsa20_xor(c,Some(m),index_fixed!(&n[16..];..8), &s)
[INFO] [stdout]     |                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/stream/mod.rs:90:20
[INFO] [stdout]    |
[INFO] [stdout] 90 |         assert!(&c[32..] == &c_expected[..]);
[INFO] [stdout]    |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/sign/mod.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | / ///A Pubic key for crypto box
[INFO] [stdout] 30 | | //pub type PublicKey = [u8; PUBLIC_KEY_BYTES];
[INFO] [stdout] 31 | | ///A secret key for crypto box
[INFO] [stdout]    | |_-----------------------------^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/sign/ed25519.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/sign/ed25519.rs:60:14
[INFO] [stdout]    |
[INFO] [stdout] 60 |     for i in 0..4 {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:134:15
[INFO] [stdout]     |
[INFO] [stdout] 134 |     for i in (0..256).rev() {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:171:14
[INFO] [stdout]     |
[INFO] [stdout] 171 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:191:15
[INFO] [stdout]     |
[INFO] [stdout] 191 |     for i in (32..64).rev() {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:193:18
[INFO] [stdout]     |
[INFO] [stdout] 193 |         for j in (i - 32)..(i - 12) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:205:14
[INFO] [stdout]     |
[INFO] [stdout] 205 |     for j in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:212:14
[INFO] [stdout]     |
[INFO] [stdout] 212 |     for j in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:216:14
[INFO] [stdout]     |
[INFO] [stdout] 216 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:226:14
[INFO] [stdout]     |
[INFO] [stdout] 226 |     for i in 0..64 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:230:14
[INFO] [stdout]     |
[INFO] [stdout] 230 |     for i in 0..64 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:265:14
[INFO] [stdout]     |
[INFO] [stdout] 265 |     for i in 0..m.len() {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:269:14
[INFO] [stdout]     |
[INFO] [stdout] 269 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:273:34
[INFO] [stdout]     |
[INFO] [stdout] 273 |     hash::raw_sha512(&mut r, &sm[32..][..m.len()+32]);
[INFO] [stdout]     |                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:278:14
[INFO] [stdout]     |
[INFO] [stdout] 278 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:286:14
[INFO] [stdout]     |
[INFO] [stdout] 286 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:291:14
[INFO] [stdout]     |
[INFO] [stdout] 291 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:292:18
[INFO] [stdout]     |
[INFO] [stdout] 292 |         for j in 0..32 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:298:32
[INFO] [stdout]     |
[INFO] [stdout] 298 |     mod_l(index_fixed!(&mut sm[32..];..32), &mut x);
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:305:14
[INFO] [stdout]     |
[INFO] [stdout] 305 |     for a in 0..16 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:308:15
[INFO] [stdout]     |
[INFO] [stdout] 308 |     for a in (0..251).rev() {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:318:14
[INFO] [stdout]     |
[INFO] [stdout] 318 |     for a in 0..16 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:433:14
[INFO] [stdout]     |
[INFO] [stdout] 433 |     for i in 0..sm.len() {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:436:14
[INFO] [stdout]     |
[INFO] [stdout] 436 |     for i in 0..32 {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:443:41
[INFO] [stdout]     |
[INFO] [stdout] 443 |     scalarbase(&mut q, index_fixed!(&sm[32..];..32));
[INFO] [stdout]     |                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:451:18
[INFO] [stdout]     |
[INFO] [stdout] 451 |         for i in 0..n {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/ed25519.rs:457:14
[INFO] [stdout]     |
[INFO] [stdout] 457 |     for i in 0..n {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / new_type! {
[INFO] [stdout] 35 | |     /// `SecretKey` for signatures
[INFO] [stdout] 36 | |     ///
[INFO] [stdout] 37 | |     /// When a `SecretKey` goes out of scope its contents
[INFO] [stdout] 38 | |     /// will be zeroed out
[INFO] [stdout] 39 | |     secret SecretKey(SECRET_KEY_BYTES);
[INFO] [stdout] 40 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | / new_type! {
[INFO] [stdout] 43 | |     /// `PublicKey` for signatures
[INFO] [stdout] 44 | |     public PublicKey(PUBLIC_KEY_BYTES);
[INFO] [stdout] 45 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/newtype_macros.rs:66:50
[INFO] [stdout]    |
[INFO] [stdout] 66 |   ...                   if let Some(value) = try!(visitor.visit()) {
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | / new_type! {
[INFO] [stdout] 48 | |     /// Detached signature
[INFO] [stdout] 49 | |     public Signature(SIGNATURE_LENGTH);
[INFO] [stdout] 50 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/mod.rs:155:14
[INFO] [stdout]     |
[INFO] [stdout] 155 |     for i in 1..2 {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/mod.rs:189:14
[INFO] [stdout]     |
[INFO] [stdout] 189 |     for i in 0..2usize {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/mod.rs:200:14
[INFO] [stdout]     |
[INFO] [stdout] 200 |     for i in 0..2usize {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/mod.rs:205:18
[INFO] [stdout]     |
[INFO] [stdout] 205 |         for j in 0..len {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/mod.rs:216:14
[INFO] [stdout]     |
[INFO] [stdout] 216 |     for i in 10..20usize {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/mod.rs:228:14
[INFO] [stdout]     |
[INFO] [stdout] 228 |     for i in 0..2usize {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/mod.rs:233:18
[INFO] [stdout]     |
[INFO] [stdout] 233 |         for j in 0..len {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/mod.rs:245:14
[INFO] [stdout]     |
[INFO] [stdout] 245 |     for i in 0..2usize {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/mod.rs:269:14
[INFO] [stdout]     |
[INFO] [stdout] 269 |     for i in 0..2usize {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/sign/mod.rs:287:18
[INFO] [stdout]     |
[INFO] [stdout] 287 |         for j in 0..len {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/secretbox/xsalsa20poly1305.rs:19:25
[INFO] [stdout]    |
[INFO] [stdout] 19 |     assert_eq!(&message[0..32], &[0u8;32]);
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/secretbox/xsalsa20poly1305.rs:31:28
[INFO] [stdout]    |
[INFO] [stdout] 31 |     *index_fixed!(&mut out[16..32];..16) = o;
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/secretbox/xsalsa20poly1305.rs:48:67
[INFO] [stdout]    |
[INFO] [stdout] 48 |     if !onetimeauth::poly1305::onetimeauth_verify(index_fixed!(&c[16..];..16), &c[32..], &x) { //
[INFO] [stdout]    |                                                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/secretbox/xsalsa20poly1305.rs:48:83
[INFO] [stdout]    |
[INFO] [stdout] 48 |     if !onetimeauth::poly1305::onetimeauth_verify(index_fixed!(&c[16..];..16), &c[32..], &x) { //
[INFO] [stdout]    |                                                                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/secretbox/xsalsa20poly1305.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 |     for i in 0..32 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/secretbox/mod.rs:110:14
[INFO] [stdout]     |
[INFO] [stdout] 110 |     for i in 0..256usize {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/secretbox/mod.rs:121:14
[INFO] [stdout]     |
[INFO] [stdout] 121 |     for i in 0..256usize {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/secretbox/mod.rs:125:18
[INFO] [stdout]     |
[INFO] [stdout] 125 |         for i in 0..boxy.cipher.len() {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |     for i in (0..255).rev() {
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 85 |     for i in 0..16 {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:93:49
[INFO] [stdout]    |
[INFO] [stdout] 93 |     shared::inv25519(&mut tmp, *index_fixed!(&x[32..];..16));
[INFO] [stdout]    |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:94:26
[INFO] [stdout]    |
[INFO] [stdout] 94 |     *index_fixed!(&mut x[32..];..16) = tmp;
[INFO] [stdout]    |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:97:52
[INFO] [stdout]    |
[INFO] [stdout] 97 |     shared::gf_multiply(&mut tmp, *index_fixed!(&x[16..];..16), *index_fixed!(&x[32..];..16));
[INFO] [stdout]    |                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:97:82
[INFO] [stdout]    |
[INFO] [stdout] 97 |     shared::gf_multiply(&mut tmp, *index_fixed!(&x[16..];..16), *index_fixed!(&x[32..];..16));
[INFO] [stdout]    |                                                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:98:26
[INFO] [stdout]    |
[INFO] [stdout] 98 |     *index_fixed!(&mut x[16..];..16) = tmp;
[INFO] [stdout]    |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/boxy/curve25519xsalsa20poly1305.rs:99:43
[INFO] [stdout]    |
[INFO] [stdout] 99 |     shared::pack25519(q, *index_fixed!(&x[16..];..16));
[INFO] [stdout]    |                                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shared`
[INFO] [stdout]  --> src/boxy/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use shared;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hash/sha512.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let mut x = &mut x[..new_len];
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sign/ed25519.rs:396:16
[INFO] [stdout]     |
[INFO] [stdout] 396 |     let (init, mut rest) = r.split_at_mut(3);
[INFO] [stdout]     |                ----^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hash/sha512.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let mut x = &mut x[..new_len];
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_data_test_helper` is never used
[INFO] [stdout]    --> src/shared.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn random_data_test_helper(len: usize) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIGN_BYTES` is never used
[INFO] [stdout]   --> src/sign/ed25519.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const SIGN_BYTES: usize = 64;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: public trait impl involving `Range` type
[INFO] [stdout]   --> src/newtype_macros.rs:88:28
[INFO] [stdout]    |
[INFO] [stdout] 88 |       impl ::std::ops::Index<::std::ops::Range<usize>> for $newtype {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/hash/mod.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | / new_type! {
[INFO] [stdout] 17 | |     /// Digest-structure
[INFO] [stdout] 18 | |     public HashType(LENGTH);
[INFO] [stdout] 19 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D trait-impl-range`
[INFO] [stdout]    = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/newtype_macros.rs:90:33
[INFO] [stdout]    |
[INFO] [stdout] 90 |           fn index(&self, _index: ::std::ops::Range<usize>) -> &[u8] {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/hash/mod.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | / new_type! {
[INFO] [stdout] 17 | |     /// Digest-structure
[INFO] [stdout] 18 | |     public HashType(LENGTH);
[INFO] [stdout] 19 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D explicit-range`
[INFO] [stdout]    = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: public trait impl involving `RangeFrom` type
[INFO] [stdout]    --> src/newtype_macros.rs:114:28
[INFO] [stdout]     |
[INFO] [stdout] 114 |       impl ::std::ops::Index<::std::ops::RangeFrom<usize>> for $newtype {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/hash/mod.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout] 16  | / new_type! {
[INFO] [stdout] 17  | |     /// Digest-structure
[INFO] [stdout] 18  | |     public HashType(LENGTH);
[INFO] [stdout] 19  | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `RangeFrom` type in public function
[INFO] [stdout]    --> src/newtype_macros.rs:116:33
[INFO] [stdout]     |
[INFO] [stdout] 116 |           fn index(&self, _index: ::std::ops::RangeFrom<usize>) -> &[u8] {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/hash/mod.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout] 16  | / new_type! {
[INFO] [stdout] 17  | |     /// Digest-structure
[INFO] [stdout] 18  | |     public HashType(LENGTH);
[INFO] [stdout] 19  | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: public trait impl involving `Range` type
[INFO] [stdout]   --> src/newtype_macros.rs:88:28
[INFO] [stdout]    |
[INFO] [stdout] 88 |       impl ::std::ops::Index<::std::ops::Range<usize>> for $newtype {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / new_type! {
[INFO] [stdout] 35 | |     /// `SecretKey` for signatures
[INFO] [stdout] 36 | |     ///
[INFO] [stdout] 37 | |     /// When a `SecretKey` goes out of scope its contents
[INFO] [stdout] 38 | |     /// will be zeroed out
[INFO] [stdout] 39 | |     secret SecretKey(SECRET_KEY_BYTES);
[INFO] [stdout] 40 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/newtype_macros.rs:90:33
[INFO] [stdout]    |
[INFO] [stdout] 90 |           fn index(&self, _index: ::std::ops::Range<usize>) -> &[u8] {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / new_type! {
[INFO] [stdout] 35 | |     /// `SecretKey` for signatures
[INFO] [stdout] 36 | |     ///
[INFO] [stdout] 37 | |     /// When a `SecretKey` goes out of scope its contents
[INFO] [stdout] 38 | |     /// will be zeroed out
[INFO] [stdout] 39 | |     secret SecretKey(SECRET_KEY_BYTES);
[INFO] [stdout] 40 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: public trait impl involving `RangeFrom` type
[INFO] [stdout]    --> src/newtype_macros.rs:114:28
[INFO] [stdout]     |
[INFO] [stdout] 114 |       impl ::std::ops::Index<::std::ops::RangeFrom<usize>> for $newtype {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/sign/mod.rs:34:1
[INFO] [stdout]     |
[INFO] [stdout] 34  | / new_type! {
[INFO] [stdout] 35  | |     /// `SecretKey` for signatures
[INFO] [stdout] 36  | |     ///
[INFO] [stdout] 37  | |     /// When a `SecretKey` goes out of scope its contents
[INFO] [stdout] 38  | |     /// will be zeroed out
[INFO] [stdout] 39  | |     secret SecretKey(SECRET_KEY_BYTES);
[INFO] [stdout] 40  | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `RangeFrom` type in public function
[INFO] [stdout]    --> src/newtype_macros.rs:116:33
[INFO] [stdout]     |
[INFO] [stdout] 116 |           fn index(&self, _index: ::std::ops::RangeFrom<usize>) -> &[u8] {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/sign/mod.rs:34:1
[INFO] [stdout]     |
[INFO] [stdout] 34  | / new_type! {
[INFO] [stdout] 35  | |     /// `SecretKey` for signatures
[INFO] [stdout] 36  | |     ///
[INFO] [stdout] 37  | |     /// When a `SecretKey` goes out of scope its contents
[INFO] [stdout] 38  | |     /// will be zeroed out
[INFO] [stdout] 39  | |     secret SecretKey(SECRET_KEY_BYTES);
[INFO] [stdout] 40  | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: public trait impl involving `Range` type
[INFO] [stdout]   --> src/newtype_macros.rs:88:28
[INFO] [stdout]    |
[INFO] [stdout] 88 |       impl ::std::ops::Index<::std::ops::Range<usize>> for $newtype {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | / new_type! {
[INFO] [stdout] 43 | |     /// `PublicKey` for signatures
[INFO] [stdout] 44 | |     public PublicKey(PUBLIC_KEY_BYTES);
[INFO] [stdout] 45 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/newtype_macros.rs:90:33
[INFO] [stdout]    |
[INFO] [stdout] 90 |           fn index(&self, _index: ::std::ops::Range<usize>) -> &[u8] {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | / new_type! {
[INFO] [stdout] 43 | |     /// `PublicKey` for signatures
[INFO] [stdout] 44 | |     public PublicKey(PUBLIC_KEY_BYTES);
[INFO] [stdout] 45 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: public trait impl involving `RangeFrom` type
[INFO] [stdout]    --> src/newtype_macros.rs:114:28
[INFO] [stdout]     |
[INFO] [stdout] 114 |       impl ::std::ops::Index<::std::ops::RangeFrom<usize>> for $newtype {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/sign/mod.rs:42:1
[INFO] [stdout]     |
[INFO] [stdout] 42  | / new_type! {
[INFO] [stdout] 43  | |     /// `PublicKey` for signatures
[INFO] [stdout] 44  | |     public PublicKey(PUBLIC_KEY_BYTES);
[INFO] [stdout] 45  | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `RangeFrom` type in public function
[INFO] [stdout]    --> src/newtype_macros.rs:116:33
[INFO] [stdout]     |
[INFO] [stdout] 116 |           fn index(&self, _index: ::std::ops::RangeFrom<usize>) -> &[u8] {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/sign/mod.rs:42:1
[INFO] [stdout]     |
[INFO] [stdout] 42  | / new_type! {
[INFO] [stdout] 43  | |     /// `PublicKey` for signatures
[INFO] [stdout] 44  | |     public PublicKey(PUBLIC_KEY_BYTES);
[INFO] [stdout] 45  | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: public trait impl involving `Range` type
[INFO] [stdout]   --> src/newtype_macros.rs:88:28
[INFO] [stdout]    |
[INFO] [stdout] 88 |       impl ::std::ops::Index<::std::ops::Range<usize>> for $newtype {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | / new_type! {
[INFO] [stdout] 48 | |     /// Detached signature
[INFO] [stdout] 49 | |     public Signature(SIGNATURE_LENGTH);
[INFO] [stdout] 50 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/newtype_macros.rs:90:33
[INFO] [stdout]    |
[INFO] [stdout] 90 |           fn index(&self, _index: ::std::ops::Range<usize>) -> &[u8] {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/sign/mod.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | / new_type! {
[INFO] [stdout] 48 | |     /// Detached signature
[INFO] [stdout] 49 | |     public Signature(SIGNATURE_LENGTH);
[INFO] [stdout] 50 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: public trait impl involving `RangeFrom` type
[INFO] [stdout]    --> src/newtype_macros.rs:114:28
[INFO] [stdout]     |
[INFO] [stdout] 114 |       impl ::std::ops::Index<::std::ops::RangeFrom<usize>> for $newtype {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/sign/mod.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  | / new_type! {
[INFO] [stdout] 48  | |     /// Detached signature
[INFO] [stdout] 49  | |     public Signature(SIGNATURE_LENGTH);
[INFO] [stdout] 50  | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `RangeFrom` type in public function
[INFO] [stdout]    --> src/newtype_macros.rs:116:33
[INFO] [stdout]     |
[INFO] [stdout] 116 |           fn index(&self, _index: ::std::ops::RangeFrom<usize>) -> &[u8] {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/sign/mod.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  | / new_type! {
[INFO] [stdout] 48  | |     /// Detached signature
[INFO] [stdout] 49  | |     public Signature(SIGNATURE_LENGTH);
[INFO] [stdout] 50  | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `newtype_traits` which comes from the expansion of the macro `new_type` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/secretbox/mod.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     xsalsa20poly1305::secretbox(&mut cipher, &m, &nonce, &key.0);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let _ = xsalsa20poly1305::secretbox(&mut cipher, &m, &nonce, &key.0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/boxy/mod.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |         curve25519xsalsa20poly1305::box_(&mut cipher, &m, &nonce, &pk.0, &sk.0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let _ = curve25519xsalsa20poly1305::box_(&mut cipher, &m, &nonce, &pk.0, &sk.0);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 16 previous errors; 132 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sign/ed25519.rs:396:16
[INFO] [stdout]     |
[INFO] [stdout] 396 |     let (init, mut rest) = r.split_at_mut(3);
[INFO] [stdout]     |                ----^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `microsalt` (lib) due to 17 previous errors; 132 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sign/mod.rs:261:13
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let mut sig = key.sign(&message);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIGN_BYTES` is never used
[INFO] [stdout]   --> src/sign/ed25519.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const SIGN_BYTES: usize = 64;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/secretbox/mod.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     xsalsa20poly1305::secretbox(&mut cipher, &m, &nonce, &key.0);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let _ = xsalsa20poly1305::secretbox(&mut cipher, &m, &nonce, &key.0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/boxy/mod.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |         curve25519xsalsa20poly1305::box_(&mut cipher, &m, &nonce, &pk.0, &sk.0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let _ = curve25519xsalsa20poly1305::box_(&mut cipher, &m, &nonce, &pk.0, &sk.0);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 147 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9aff6f3b3e8ec563fd704e43c226c671711361eb091669379040387c2e08c6f7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9aff6f3b3e8ec563fd704e43c226c671711361eb091669379040387c2e08c6f7", kill_on_drop: false }`
[INFO] [stdout] 9aff6f3b3e8ec563fd704e43c226c671711361eb091669379040387c2e08c6f7
